#include <stdio.h>
#include <malloc.h>
#include "arvore_sa.h"

int main (void)
{
	/* ----------------------------------------------------------------------
      Declarações e início para verificação do uso da memória dinâmica.
      ---------------------------------------------------------------------- */
   	struct mallinfo info = mallinfo();
   	int MemDinInicial = info.uordblks, MemDinFinal;
   	/* ---------------------------------------------------------------------- */

	int op = 1;
	ArvoreSA *raiz = NULL;
	char teste[64];
	char compra[64];
	char vende[64];

	while (1)
	{
		printf("Opcao (0 para sair, 1 para inserir, 2 para consultar): ");
		scanf("%d",&op);
		if (op == 0)
			break;
		if (op == 1)
		{
			printf("Cidade compradora: ");
			scanf("%s",compra);
			printf("Cidade vendedora: ");
			scanf("%s",vende);
			printf("Produto a ser inserido: ");
			scanf("%s",teste);
			raiz = insere_arvore_sa(raiz,compra,vende,teste);
			Imprime(raiz);
			printf("\n");
		}
		if (op == 2)
		{
			printf("Produto a ser consultado: ");
			scanf("%s",teste);
			consulta_arvore_sa(raiz,teste);
		}
		
	}
	libera_arvore_sa(&raiz);
	/* --------------------------------------------------------------------- */
	   /* Verificação final do uso da memória dinâmica                          */
	   /* --------------------------------------------------------------------- */
	   info = mallinfo();
	   MemDinFinal = info.uordblks;
	   if (MemDinInicial!=MemDinFinal)
		 printf("\n\nMemoria dinamica nao foi totalmente liberada (%d, %d)\n",
	   MemDinInicial,MemDinFinal);
   	/* --------------------------------------------------------------------- */
	return 0;
}
